Dynamic Resource Adjustment for Establishing and Maintaining a Call of Interest

ABSTRACT

Methods and servers are disclosed for dynamically adjusting mobile communication device resources for maintaining call on the mobile communication device subject to a lawful intercept. Methods may include a server transmitting to the mobile communication device an activation input for activating a call extender daemon that cannot be deactivated. A resource status indication message may be received from the mobile communication device. The resource status indication message may include a state of an onboard resource of the mobile communication device. A resource adjustment input may be transmitted from the server to the mobile communication device. The resource adjustment input may cause the call extender daemon to adjust an operating state of the onboard resource of the mobile communication device based on the activation input to increase a likelihood of maintaining an active call on the mobile communication device and without alerting a user of the mobile communication device.

This application claims the benefit of priority to U.S. Non-provisionalpatent application Ser. No. 14/146,186 entitled “Dynamic ResourceAdjustment for Establishing and Maintaining a Call of Interest” filedJan. 2, 2014, the entire contents of which are hereby incorporated byreference for all purposes.

BACKGROUND

Most communication networks include a capability for lawful interceptionof communication network data for the purpose of analysis and/orevidence by a lawful authority. Such communication network data mayinclude signaling or network management information, as well as theactual communications themselves, such as through wiretapping of activecalls. Many nations even enact laws to enhance the ability of lawenforcement and intelligence agencies to conduct surveillance oftelecommunications. Such nations generally require thattelecommunication carriers, networks and equipment manufacturers modifyand design their equipment to facilitate lawful interception. Forexample, with the proper authorization law enforcement personnel maylawfully listen-in on mobile communications using location informationthe mobile communication devices are required to make available whenestablishing and maintaining connections for a call.

Thus, lawful intercept allows an individual telephone call to beidentified and tap into. On occasion tapped calls are prematurelyterminated due to signaling problems or insufficient battery when amobile communication device is involved on one end of the call.

SUMMARY

The various embodiments include methods, systems and devices fordynamically adjusting mobile communication device resources for thepurpose of maintaining a call that is subject to a lawful interception.In an embodiment, a call extender daemon for maintaining calls may beoperated as a daemon running on an application layer or modem layer of amobile communication device. The daemon may receive input and implementprotocols of the call extender daemon designed to maintain a call ofinterest. In this way, a call extender input may be received at themobile communication device from a remote source, such as a remoteserver of an eavesdropping lawful interception authority. The callextender input may activate the call extender daemon on the mobilecommunication device, which then may be responsive to additional callextender inputs. The call extender daemon may adjust, activate ordeactivate one or more onboard resources of the mobile communicationdevice in order to increase the likelihood that the active call will bemaintained on that mobile communication device. The embodiments enable alaw enforcement authority to take an action to maintain or extend a callinvolved in a lawful interception by increasing that likelihood that thecall will be maintained and/or that the mobile device will not drain itsbattery before the call would otherwise be ended by a target of thelawful intercept.

In an embodiment, a method of dynamically adjusting mobile communicationdevice resources for maintaining calls may include receiving at themobile communication device an activation input from a remote serverassociated with a lawful interception. A call extender daemon on themobile communication device may be activated by the activation input.The activation input may be received via an Internet protocol channel, aunicast message and an overhead power control channel. In response tothe activation signal the call extender daemon may adjust an operatingstate of one or more onboard resources of the mobile communicationdevice without notifying the user. The adjustment of the operating stateof the one or more onboard resources may increase a likelihood ofmaintaining an active call on the mobile communication device, such asby reducing battery drain (and thus potentially extending the time thatthe call can be sustained by the device) or increasing power to thecomponents supporting the call.

Additionally, a resource status indication may be transmitted from themobile communication device for analysis at a remote server associatedwith the lawful intercept. The resource status indication may reflect astate of one or more onboard resources of the mobile communicationdevice, including the battery charge state and one or more resourcesadjusted by the call extender input. A state of onboard resources of themobile communication device may be determined by the remote, such aswhether the one or more onboard resources are in a state that could leadto premature termination of the on-going call or whether adjusting oneof the resources could increase the likelihood of maintaining the activecall. Based on this determination, another signal may be sent to themobile communication device from the remote server associated with alawful interception in order to further adjust a device resource toincrease the likelihood of maintaining the active call. In anembodiment, the second signal adjusting the operating state of the firstonboard resource may cause the call extender daemon to activate the idleonboard resource.

In a further embodiment, the method may include determining a historicalusage pattern of the onboard resources, and determining the firstresource adjustment may be based on the historical usage pattern.

The call extender daemon need not be subject to being deactivated by auser of the mobile communication device. Also, the call extender daemonmay actively conceal itself from the user, particularly when anoperating state of an onboard resource is adjusted.

In a further embodiment, a registration initiator may be received fromthe remote server at the mobile communication device, and a registerrequest may be transmitted from the mobile communication device inresponse to receiving the registration initiator. The register requestmay be adapted to provide a remote resource with an end point addressfor delivery of commands to the call extender daemon on the mobilecommunication device.

Further embodiments may include receiving a resource status indicationfrom a mobile communication device at a remote server. The resourcestatus indication may reflect a state of onboard resources of the mobilecommunication device, wherein an operating state of one or more of theonboard resources may decrease a likelihood of maintaining a call activeon the mobile communication device. Also, an activation input may betransmitted to a call extender daemon on the mobile communicationdevice. The activation input may be configured to cause the callextender daemon to adjust the operating state of a first onboardresource for increasing the likelihood of maintaining the active call onthe mobile communication device. A first resource adjustment may bedetermined based on the state of onboard resources identified in thereceived resource status indication and included in an adjustment signalsent to the mobile communication device. The adjustment of the operatingstate of the first onboard resource of the mobile communication devicemay be based on the first resource adjustment. For example, if the stateof the onboard resources reveals that the first onboard resource isinactive, the adjustment signal sent to the mobile communication devicemay be configured to cause the call extender daemon to activate thefirst onboard resource. Further, a historical usage pattern of theonboard resources may be determined, and the first resource adjustmentmay be based on the historical usage pattern.

Further embodiments may include a computing device having a processorconfigured with processor-executable instructions to perform variousoperations corresponding to the methods discussed above.

Further embodiments may include a computing device having various meansfor performing functions corresponding to the method operationsdiscussed above.

Further embodiments may include a non-transitory processor-readablestorage medium having stored thereon processor-executable instructionsconfigured to cause a processor to perform various operationscorresponding to the method operations discussed above.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated herein and constitutepart of this specification, illustrate exemplary embodiments of theinvention, and together with the general description given above and thedetailed description given below, serve to explain the features of theinvention.

FIG. 1 is a communication system schematic diagram illustratingfunctionality of various embodiments.

FIG. 2 is a communication flow diagram of a mobile communication deviceIP address registration in accordance with various embodiments.

FIG. 3 is a communication flow diagram of an activation of a callextender daemon on a mobile communication device in accordance withvarious embodiments.

FIG. 4 is a communication flow diagram of a basic call extender daemonon a mobile communication device in accordance with various embodiments.

FIG. 5 is a communication flow diagram of an autonomous call extenderdaemon on a mobile communication device in accordance with variousembodiments.

FIG. 6 is a communication flow diagram of a remote controlled callextender daemon on a mobile communication device in accordance withvarious embodiments.

FIG. 7 is a process flow diagram illustrating an embodiment method thatmay be implemented by autonomous call extender daemon on a mobilecommunication device.

FIG. 8 is a process flow diagram illustrating a remote server activatingan autonomous call extender daemon on a mobile communication device inaccordance with various embodiments.

FIG. 9 is a process flow diagram illustrating a remote servercontrolling a call extender daemon on a mobile communication device inaccordance with various embodiments.

FIG. 10 is a process flow diagram illustrating another remote controlledcall extender daemon on a mobile communication device in accordance withvarious embodiments.

FIG. 11 is a process flow diagram illustrating an analysis ofintelligence gathered by a call extender daemon on a mobilecommunication device in accordance with various embodiments.

FIG. 12 is a process flow diagram illustrating a method of adjustingresources of a mobile communication device in accordance with variousembodiments.

FIG. 13 is a component block diagram of a mobile device suitable for usein the various embodiments.

FIG. 14 is a component block diagram of a server device suitable for usein the various embodiments.

DETAILED DESCRIPTION

The various embodiments will be described in detail with reference tothe accompanying drawings. Wherever possible, the same reference numberswill be used throughout the drawings to refer to the same or like parts.References made to particular examples and implementations are forillustrative purposes, and are not intended to limit the scope of theinvention or the claims.

The term “mobile communication device” refers to any one or all ofcellular telephones, smartphones, personal or mobile multi-mediaplayers, personal data assistants (PDA's), laptop computers, tabletcomputers, smartbooks, palm-top computers, wireless electronic mailreceivers, multimedia Internet enabled cellular telephones, wirelessgaming controllers, and similar personal electronic devices whichinclude a programmable processor, memory and cellular telephonecircuitry configured to conduct cellular telephone calls.

As used herein, in connection with a mobile communication device theterms “resource” or “onboard resource” are used interchangeably to referto hardware, software and/or any other asset that may be used by themobile communication device and are apart of the mobile communicationdevice. Onboard resources refer to hardware physically joined with themobile communication device or software executed or partially executedon an onboard processor or component of the mobile communication device.An onboard resource may include at least one of a power source, aprocessor, a function (e.g., a software process), memory, a radio,communication ports, an input device (e.g., a sensor, keyboard, buttonsor touchscreen) or an output device (e.g., a display or speakers)available to the mobile communication device. Processor and memoryresources may include computational hardware and software. Onboardresources are distinguished from remote resources that are physicallyseparate from the mobile communication device or software executed orpartially executed by a processor physically separate from the mobilecommunication device. However, local peripheral devices are physicallylocated in close proximity to the mobile communication device and aredirectly connected by wired or short-range wireless connections (e.g.,via USB, FireWire, Bluetooth®, ANT+®, Zigbee®, etc.) may be treated likean onboard resource, and thus considered a mobile communication deviceresource as referred to herein.

Law enforcement may use lawful intercept to secretly monitor a telephonecall identified as a call of interest. There maybe circumstances inwhich law enforcement would like to make sure that calls via a mobilecommunications device that is the subject of lawful intercepts aresuccessfully established and that such calls are not dropped so thatsuccessful or extended wiretaps can be completed. To address this need,the various embodiments enable law enforcement to signal to a targetedmobile communication device signals that cause it to take actions enablethe establishment and/or maintenance of calls of interest. Those actionsmay include altering one or more settings on the mobile communicationdevice involved in the call of interest in order to increase thelikelihood that the call will be established, maintained and/or notdropped.

In the various embodiments, settings and resource allocations of amobile communication device may be dynamically and remotely adjusted inorder to establish/maintain a call of interest to a lawful intercept.For example, if the battery of a mobile communication device is low, alawful intercept authority may send a signal to the mobile communicationdevice causing it to change settings or shut down certain functions inorder to conserve battery power so that the call can be maintainedlonger. Such measures may reduce the chance that the call under a lawfulintercept is dropped by conserving the power available in the battery.Similarly, other resources may be turned off, turned on, and/orotherwise adjusted in order to increase the likelihood that the call ofinterest will not be dropped. In order to dynamically and remotelyadjust resource allocations, the various embodiments provide a lawfulintercept authority with mechanisms to remotely access the mobilecommunication device conducting a call of interest and activate an callextender daemon on the device that automatically takes actions to adjustthe device resources as directed. In this way, one or more selectonboard resources of the mobile communication device may be adjusted aspart of a resource allocation designed to ensure a call of interest isestablished and maintained. A determination may be made regarding theresource(s) to be adjusted and/or the extent to which individualresources should be adjusted may be predetermined and/or determineddynamically in response to an analysis of the device resources.

FIG. 1 illustrates some components of a cellular telephone system 100involved in a lawful intercept of a call of interest between twoindividuals 10, 20. FIG. 1 shows one individual 10 connected to the callof interest using a mobile communication device 110, while the otherindividual 20 is on a landline telephone 120, although both individuals10, 20 may be on mobile communication devices. The mobile communicationdevice 110 and the landline telephone 120 are operatively connectedthrough a communication network 150 that includes regional locationservice(s) (RLS) 160, 165.

A lawful authority using a dispatcher 170 or eavesdropping server 180may gain network access to a mobile communication device 110 involved ina call of interest using an Internet Protocol (IP) connection and thesession initiation protocol (SIP) registrations digital communicationsuse for establishing and maintaining a call. The SIP is a signalingcommunications protocol, widely used for controlling multimediacommunication sessions such as voice and video calls over InternetProtocol (IP) networks. If a mobile communication device user wants toinitiate a call with another user, the SIP must discover the currenthost(s) at which the destination user is reachable. This discoveryprocess is frequently accomplished by SIP network elements, such asproxy servers and redirect servers which are responsible for receiving arequest, determining where to send it based on knowledge of the locationof the user, and then sending it there. To do this, the SIP networkelements consult an abstract service known as a location service 160,165, which provides address bindings for a particular domain.

Public safety and/or law enforcement agencies generally have a pluralityof dispatcher facilities that interface with the cellular telephonesystem. FIG. 1 includes a dispatcher 170 and its associated databasefront end 175, as well as an eavesdropping server 180 with its owndatabase 185. A dispatcher 170 may be a network server used to establisha call, such as a push-to-talk call host server. The dispatcher 170 mayreceive a request from a caller originating a call, such as mobilecommunication device 110. The dispatcher 170 in-turn reaches out to oneor more intended receivers of the call (e.g., telephone 120) bytransmitting a call announcement signal. The dispatcher 170 may connectto a regional location service 160, 165, for example, by using Internetprotocol connectivity. Such a connection may be achieved through virtualprivate networking or through an actual private network (i.e., behindthe same firewall). The eavesdropping server 180 may access thisdispatcher 170 to obtain needed information about end points of the call(including IP address, ports, username, etc.). Also, the eavesdroppingserver 180 may monitor the streaming real-time protocol audio or video.Such an eavesdropping function may be performed by the eavesdroppingserver 180, a separate entity with access to the dispatcher 170, or byan added functionality of the dispatcher 170.

With a data connection established, a call extender algorithm residenton the mobile communication device 110 (referred to herein as a callextender daemon or a call extender daemon) may register with a centralservice that handles session SIP registrations. FIG. 2 illustratescommunication flows for IP address registration by the call extenderdaemon on the mobile communication device 110. Such IP addressregistration keeps the dispatcher 170 and eavesdropping server 180updated as to the IP address assignment of a mobile communication device110. The IP address, once assigned, will act as an endpoint for commandsand communications to be sent to the mobile communication device 110,including signals from a law enforcement authority sending commands to acall extender daemon in a target mobile communication device.

Commands and communications with the mobile communication device 110 maybe used to activate and control the call extender daemon built into themobile communication device as a call extender daemon for the purpose ofestablishing, maintaining and/or extending calls. The call extenderdaemon may run on an application layer or modem layer of the mobilecommunication device 110. Such a call extender daemon may be a computerprogram that runs as a background process, rather than being under thedirect control of an interactive user of the mobile communication device110. Thus, once installed and/or activated the call extender daemon mayregister itself by communicating a session indication protocol (SIP)registration to network complements. This registration may keep networkcomponents, such as the regional location server (RLS) 150, dispatcher170 and eavesdropping server 180, up to date with an IP addressassignment for the mobile communication device. The call extender daemonmay maintain the registration through periodic or event-based triggers.Such event-based triggers may include acquisition of a new IP addresswhen air-interface becomes newly available and/or upon the occurrence ofnetwork events such as fades or other network system issues.

In an embodiment, the call extender daemon may be provided within asecure layer, such as with the trust zone operating software configuredby the original equipment manufacturer (OEM). In another embodiment, thecall extender daemon may be installed by the network service provider onthe mobile communication device as a service below the OEM layer, suchas at the CDMA layer.

The registration process may initially include a register request 210transmitted from the mobile communication device 110 to a regionallocation server 150. If the register request 210 is properly submitted,the regional location server 150 may respond to the mobile communicationdevice 110 with a “200 OK” signal indicating the request was properlyreceived. Also, the regional location server 150 may transmit anotification 220 to a dispatcher 170. The dispatcher 170 may alsorespond with a 200 OK signal to the regional location server 150 toindicate the notification was successfully received. The dispatcher 170may then authenticate the mobile communication device by accessing 230 adatabase front end 175. After implementing an authentication,authorization, accounting (AAA) routine the database front end 175 mayprovide an authentication response 235 to the dispatcher 170. Thedispatcher 170 may transmit a registration update 240 to theeavesdropping server 180. The eavesdropping server 180 may then look upa user or mobile communication device identifier associated with theregistration. The user or mobile communication device identifier may bea telephone number of the mobile communication device 110 or otheridentifier. This type of lookup may access a local or remote resource,such as a database. If the user's mobile communication device is found,the eavesdropping server 180 may update its own database and transmit aregistration when you so you response 245 back to the dispatcher 170.The dispatcher 170 may update its cache in response to receiving theregistration update response 245 and transmit a service availablemessage 252 the mobile communication device 110. The mobilecommunication device 110 may transmit an acknowledgment 255 to thedispatcher 170 indicating that it is aware the SIP registration processwas successful. In order to ensure users are not tipped off to lawfulintercepts, the communications and operations illustrated in FIG. 2 maybe accomplished without generating an observable or discoverabledisplay, affect, or data structure on the mobile communication device.

FIG. 3 illustrates communication flows for activating a call extenderdaemon integrated as a dormant service on the mobile communicationdevice 110. In this way, virtually any mobile communication device mayinclude a call extender daemon, which is only used if it receives anactivation signal from a law enforcement authority. Such an activationsignal may originate from an eavesdropping server 180 associated with alawful authority. The lawful authority may have learned that the mobilecommunication device 110 is currently involved in or will likely beinvolved in a call of interest. For example, the mobile communicationdevice or its owner may be identified in a warrant for a lawfulintercept. Thus, a law enforcement authority may determine how to reachthe target mobile communication device 110 and transmit an activationsignal to the device in order to initiate registration by the callextender daemon deployed thereon.

To initiate or request registration, the eavesdropping server 180 maytransmit a Call/MCD ID 310 to a dispatcher 170. The Call/MCD ID 310 mayidentify a call of interest and or a particular mobile communicationdevice 110 using a call ID, username, mobile device telephone number, orother call identifier available and/or known to the lawful authority. Ifthe Call/MCD ID 310 is properly received, the dispatcher 170 may respondto the eavesdropping server 180 with a “200 OK” signal indicating asmuch. Also, the dispatcher 170 may transmit a Call/MCD Lookup 320 to theregional location server 150. In this way, the regional location server150 may be used to identify an associated SIP URL assigned to aparticular call session by the mobile communication device 110. Theregional location server 150 generally has or can gain access todatabases that associate service subscription information, required forall mobile communication devices, to SIP URL's for active calls. The IPconnection of the SIP URL identified by the regional location server 150may carry only the background metadata exchanges generally used tomaintain a connection, but may also host the voice data of the call ofinterest as well.

If the Call/MCD Lookup 320 is properly received, the regional locationserver 150 may respond to the dispatcher 170 with a “200 OK” signalindicating as much. Additionally, after an AAA verification, theregional location server 150 may look up the SIP registration andtransmit an SIP URL 332 the dispatcher 170. The dispatcher 170 may thenconvey the SIP URL 335 back to the eavesdropping server 180. In thisway, the eavesdropping server 180 may be provided with an endpointaddress for communicating with the mobile communication device 110.Thereafter, the eavesdropping server 180 may transmit a call extenderinput 340 in the form of a registration request to the dispatcher 170.Knowing the SIP URL, the dispatcher 170 may then transmit commands suchas a call extender input 345 directly to the mobile communication device110 as a registration request. Such a registration request may wake thedormant call extender service on the mobile communication device 110.

When a lawful authority is prepared to eavesdrop on a particular mobilecommunication device involved in a “call of interest,” a server operatedby the lawful authority may determine whether an SIP URL is known fromregistration updates provided by the call extender daemon. If not, thelawful authority may initiate a registration request as described above.In this way, the lawful authority may determine where to send datapackets for delivery to the mobile communication device. Such datapackets may be received by a daemon on the mobile communication devicefor controlling resources thereon. The daemon may be integrated with theoriginal equipment manufacturer (OEM) layer of the mobile communicationdevice in order to be able to manipulate resources of the device. Also,the daemon should be beyond user control and visibility, such asoperating within a trust zone of the mobile device processor, so that auser of the mobile communication device never becomes aware of theexistence of the call extender daemon or when the daemon is active.

Another implementation may replace the need for an SIP URL bytransmitting a unicast message to the mobile communication device, suchas by using the device's telephone number as an address. For example, acustomized short message service (SMS) message may be sent to the mobilecommunication device in a format that is recognized and processed inobscurity by the daemon on the device. While similar to a conventionaltext message, such a customized SMS message may be sent in a format sothat it can be received, recognized and processed by daemon on themobile communication device in a manner that avoids detection by a user.The silent receipt of such a message provides a way to actively concealfrom a user the activation of a call extender call extender daemonand/or the adjustment of the operating state of one or more onboardresources. Employing a silently received SMS message may be useful whenIP coverage is not available, such as a circuit-switched environment.Also, an SMS-based messaging system provides the advantage that it isonly used when needed and may be more difficult for a user to identifyas running on the mobile communication device. While conventionalSMS-based messages generally trigger a sound or vibrational notificationat the mobile communication device, the call extender daemon mayactively block such notifications in response to receipt of a callextender input intended solely for the call extender daemon. Blockingsuch notifications actively conceals from the user activity by the callextender daemon.

SMS messages may also be used by the mobile communication device to senddevice resource status messages to the cellular network, which may beconfigured to route such messages to the law enforcement authority thatactivated the call extender daemon.

In an embodiment, the call extender daemon may be signaled (e.g., withan activation signal) by a law enforcement authority through messagesplaced in an overhead power control channel or loopback mechanism. Thiscommunication link is used by cellular telephone systems to control thepower level of the mobile communication device transceiver. As is wellknown, signals are exchanged between the mobile communication networkand a cell site of the cellular network about 800 times per second, andthe cell site sends power-up and power-down messages in these signals tocontrol the power level of the device's transceiver in order to maintainthe quality of the wireless link. In this embodiment, a special signalthat is receivable by the call extender daemon may be added into themessages exchanged via the overhead power control channel. Because theoverhead power control channel is a robust communication link used tocontrol settings in the mobile communication device and is invisible tothe user, this channel is well suited for also carrying the callextender daemon signals. This embodiment may be implemented by defininga new overhead power control channel signal structure that the mobilecommunication device transceiver will recognize and direct to the callextender daemon when received, and that includes data/command fieldsthat the call extender daemon can interpret.

The overhead power control channel may also be used by the mobilecommunication device to send device resource status messages to thecellular network, which may be configured to route such messages to thelaw enforcement authority (e.g., to an eavesdropping server) thatactivated the call extender daemon.

FIG. 4 illustrates communication flows activating and implementing acall extender daemon or call extender daemon on the mobile communicationdevice 110. When a lawful authority decides to eavesdrop on a call ofinterest, an eavesdropping server 180 may be used to transmit a callextender (CE) input 410 to the mobile communication device 110 by way ofnetwork resources. The call extender input 410 may be an activationsignal for the call extender daemon 111, which may remain in an inactivestate until such a signal is received. The network resources may includea regional location server or dispatcher (i.e., RLS/Dispatcher 160, 165,175), as described above. The RLS/Dispatcher 160, 165, 175 may conveythe call extender input 415 to the mobile communication device 110,which may receive the input message and route it to a call extenderdaemon 111. The call extender daemon 111 may then execute protocols toadjust one or more of various onboard resources 113, 115, 117, such asby issuing resource adjustment commands 423, 425, 427.

The various onboard resources available for adjustment are describedfurther below, but for illustrative purposes are represented in thecommunication flows as a series of onboard resources R_(A), R_(B) . . .R_(N). One or more of the onboard resources 113, 115, 117 may receiveadjustments from the call extender daemon 111. FIG. 4 illustrates thatresource R_(A) 113 may receive a signal containing instructions forexecution of Adjustment A 423, resource R_(B) 115 may receive a signalcontaining instructions for execution of Adjustment B 425, and resourceR_(C) 117 may receive a signal containing instructions for execution ofAdjustment C 427 from the call extender daemon 111 for adjusting anoperating state of resources. FIG. 4 shows a basic embodiment of a callextender call extender daemon that does not analyze resource usageand/or availability before making adjustments. In this embodiment, apredetermined resource allocation is executed for one or more resourcesas may be defined in advance. For example, resource R_(A) 113 may be thescreen display of the mobile communication device 110, and apredetermined call extender resource adjustment for the resource R_(A)113 may include dimming the brightness of the screen display or settingthe screen display brightness to a predetermined brightness level inorder to reduce the power consumed by the display, thereby extending thetime the call can be maintained before the battery is drained. Asanother example, resource R_(B) 115 may be a Bluetooth transceiver andresource R_(N) 117 may be the cellular transceiver of the mobilecommunication device 110. In this example, a predetermined resourceadjustment for the Bluetooth resource R_(B) 115 may include turning offthat Bluetooth resource, and a predetermined resource adjustment for thecellular transceiver resource R_(N) 117 may include reducing thefrequency at which the transceiver obtains location fixes and reportslocation fixes to the network. Like dimming the display, thesepredetermined resource adjustments (425 and 427 in FIG. 4) may reducepower consumption, thereby extending the time the call can be maintainedbefore the battery is drained.

FIG. 5 illustrates communication flows for an autonomous call extenderdaemon on the mobile communication device 110 in an embodiment in whichthe device 110 determines a state of onboard resources and operatingconditions (e.g., battery charge state) that it uses to select thedevice onboard resources to be adjusted. In this manner, a resourceadjustment determination may be made by the autonomous call extenderdaemon based on the current state of the mobile communication device. Byadjusting the operating state of onboard resources of the mobilecommunication device based on the device's actual operating state theautonomous call extender daemon may better adjust resources in order toincrease the likelihood of maintaining an active call of interest, andavoid making adjustments when not necessary (e.g., when the battery isfully charged) in order to reduce the chance that the user might noticethe adjustments.

Referring to FIG. 5, when a lawful authority decides to eavesdrop on acall of interest, an eavesdropping server 180 may transmit a callextender input 510 to the mobile communication device 110 by way ofnetwork resources RLS/Dispatcher 160, 165, 175. The network resourcesRLS/Dispatcher 160, 165, 175 may convey the call extender input 515 tothe mobile communication device 110, which may receive the signal androute it to the call extender daemon 111. In order to determine a stateof one or more of resources R_(A) 113, R_(B) 115, R_(C) 117, the callextender daemon 111 may send a status query 571, 573, 575 to the variousonboard resources 113, 115, 117. In response to the query, each resourceR_(A) 113, R_(B) 115, R_(C) 117, or an associated controller, maytransmit a resource status indication 572, 574, 576 reflecting the state(States A, B, C in FIG. 5) of the resources R_(A) 113, R_(B) 115, R_(C)117, respectively. Using the one or more received resource statusindications 572, 574, 576 the call extender daemon 111 may determine thestate A, B, C of R_(A) 113, R_(B) 115, R_(C) 117. The onboard resourcesmost likely to be analyzed for resource adjustment are those whosefurther operating state is most likely to decrease the likelihood ofmaintaining a currently active call, such as resources unnecessarilydraining the battery of the mobile communication device. Also, onboardresources likely to be analyzed are those whose operating state is mostlikely to increase the likelihood of maintaining a currently activecall, such as the activation of redundant communication resources (e.g.,a second wireless transceiver) when the mobile communication device isplugged into a vehicle's power outlet and battery drain is not aconcern. Thus, a determination regarding the resource adjustments thatshould be made may be made by the call extender daemon 111 based on theStates A, B, and C of resources R_(A) 113, R_(B) 115, R_(C) 117.Depending upon the determined state the call extender daemon 111 mayadjust just one resource or multiple resources. Once that determinationis made, the call extender daemon 111 may send Adjust A signal 581,Adjust B signal 583, and/or Adjust C signal 585 to the respective one ormore of the resources R_(A) 113, R_(B) 115, R_(C) 117 to make thedetermined adjustments.

FIG. 6 illustrates communication flows for an embodiment in which aremotely controlled call extender daemon on the mobile communicationdevice 110 reports the device's status to an eavesdropping server 180that uses that information to determine an appropriate resourceadjustment to be made. As with the embodiments described above, when alawful authority decides to eavesdrop on a call of interest, aneavesdropping server 180 may be used to transmit a call extender input610 to the mobile communication device 110 by way of network resourcesRLS/Dispatcher 160, 165, 175. The network resources RLS/Dispatcher 160,165, 175 may convey the call extender input 615 to the mobilecommunication device 110, which would be received by the call extenderdaemon 111. In this embodiment the call extender input 610, 615 may bean activation signal that includes a status query requesting informationregarding the state of the mobile communication device 110.

In response to receiving the call extender input 615, the call extenderdaemon 111 activate may transmit a resource status (RS) indicationmessage 620 reflecting a status of one or more resources of the mobilecommunication device. The resource status indication message 620 maycharacterize a state of onboard resources and a battery charge stateusing a simple data structure. The information in such a transmission isreferred to herein as a “resource status indication.” In an embodiment,a resource status indication message 620 may only be sent in response toreceiving a call extender input 615, which may occur when an active callhas been identified as a call of interest for a lawful intercept.

Although not shown in FIG. 6, the call extender daemon 111 may poll oneor more of the onboard resources R_(A) 113, R_(B) 115, R_(C) 117 toobtain the current state of those resources as described above withreference to FIG. 5, and included the obtained state information in theresource status indication message 620. Alternatively, the resourcesR_(A) 113, R_(B) 115, R_(C) 117 may periodically update the callextender daemon 111 with state information that may be included in theresource status indication message 620. Such periodic updates of statusinformation may be made only when the mobile communication device 110 isactively on a voice or video call or is initiating a voice or video call(e.g., receiving a phone number input from the user).

In a further embodiment that is not illustrated in the figures, the callextender daemon 111 may always be active or may remain active for aperiod of time after being activated (e.g., by a call extender message),and transmit the resource status indication message 620 to aneavesdropping server on a periodic basis or in response to event-basedtriggers. Thus, in this embodiment, the transmission of the resourcestatus indication message 620 may not necessarily be in response toreceipt of a call extender input 615.

The network resources RLS/Dispatcher 160, 165, 175 may convey theresource status indication message 620 back to the eavesdropping server180. The eavesdropping server 180 may use the information in theresource status indication message 620 to analyze the states of thedevice's onboard resources R_(A) 113, R_(B) 115, R_(C) 117, anddetermine an appropriate resource adjustment that should be implementedbased on the determined device state. The specific resource adjustmentthat is appropriate in a given situation may depend not only on themobile communication device's resource state and battery charge state,but also upon the goals and procedures of the lawful intercept. Thedetermined appropriate resource adjustment may then be transmitted bythe eavesdropping server 180 back to the mobile communication device 110in the form of a continue trigger 640 by way of network resourcesRLS/Dispatcher 160, 165, 175. The CE trigger 640 may includeinstructions for what resources should be shutdown and/or altered. Thoseinstructions may be in a simple data structure format such as sessiondescription protocol (SDP), which is a sub protocol of SIP. The networkresources RLS/Dispatcher 160, 165, 175 may transmit a call extendertrigger 650 to the call extender daemon 111. The call extender daemon111 may send Adjust A signal 661, Adjust B signal 663, and/or Adjust Csignal 665 to the respective one or more of the resources R_(A) 113,R_(B) 115, R_(C) 117 to make the determined adjustments.

The eavesdropping server 180 may also transmit correction or updateinstructions for resource allocation to the mobile communication device110. Such correction/update instructions may take into accountcircumstances particular to the call of interest. Also, such acorrection/update may be warranted in response to receiving resourcestatus indication updates reflecting a change in resource status. Thus,the call extender daemon 111 may transmit a supplemental resource statusindication message 625 to the network resources RLS/Dispatcher 160, 165,175 reflecting a status or change of status of one or more resources ofthe mobile communication device. Such a transmission may occurperiodically, in response to threshold levels of resource changes, atintervals identified by the eavesdropping server 180, in response toevents on the mobile communications device, or in response to othercriteria. The network resources RLS/Dispatcher 160, 165, 175 may conveya supplemental resource status indication message 635 back to theeavesdropping server 180. After another round of analysis, anotherdetermined resource adjustment may be transmitted by the eavesdroppingserver 180 back to the mobile communication device 110 in the form of asupplemental call extender trigger 645 by way of network resourcesRLS/Dispatcher 160, 165, 175. A relayed supplemental call extendertrigger 655 may be transmitted by the network resources RLS/Dispatcher160, 165, 175 to the mobile communication device, which passes themessage to the call extender daemon 111. The call extender daemon 111may send Adjust A signal 662, Adjust B signal 664, and/or Adjust Csignal 666 to the respective one or more of the resources R_(A) 113,R_(B) 115, R_(C) 117 to make the determined adjustments.

FIG. 7 is a process flow diagram illustrating an embodiment method 700for dynamically adjusting mobile communication device resources formaintaining calls during a lawful intercept. The method 700 relates toprocess activities from the mobile communication device perspective andmay be performed by a device processor configured withprocessor-executable instructions to execute a call extender daemonadapted to receive and execute protocols described above for increasingthe likelihood of maintaining an active call on the mobile communicationdevice.

In block 705 the processor executing the call extender daemon mayreceive a registration initiator message. The registration initiatormessage may have a data structure that is recognizable by the callextender daemon. The registration initiator message may activate aregistration mode of the call extender daemon, which may have beenpreviously dormant on the mobile communication device processor. Receiptof the registration initiator message by the mobile communication devicemay be concealed from a user of the mobile communication device so thataudio, visual and/or vibrational outputs normally generated by themobile communication device in response to receiving similar inputs maybe suppressed. The source of the registration initiator message may be aremote server, such as an eavesdropping server. Alternatively, thesource of the registration initiator message may be a remote resource oron board resource to which the call extender daemon is programmed toreact. For example, receipt of a phone call or unicast message from apredetermined source may act as a registration initiator message.Similarly, a time-based or event-based algorithm within the callextender daemon or other processor-executable instructions configuringthe device processor may generate such a registration initiator.

In block 710 a register request may be transmitted by the processorexecuting the call extender daemon from the mobile communication device.The register request may be adapted to provide a remote resource, suchas a local or eavesdropping server, with an end point address fordelivery of commands to the call extender daemon executing on aprocessor of the mobile communication device. Additionally, the registerrequest may provide a remote resource with additional information (e.g.,access codes) enabling later delivery of commands for the call extenderdaemon executing on the device processor.

In block 715 an activation input may be received by the processorexecuting the call extender daemon. The activation input may be a formof call extender input intended to activate the call extender daemon foradjusting an operating state of onboard resources in order to increasethe likelihood of maintaining an active call. Upon receipt of theactivation input, in block 720 the processor executing the call extenderdaemon may begin the process of making the appropriate resourceadjustment.

In one embodiment the processor executing the call extender daemon maynot perform resource analysis and may only execute predeterminedadjustments to onboard resources in block 740. In this embodiment, theprocessor executing the call extender daemon may end the processor orawait further activation inputs.

In an embodiment in which the processor executing the call extenderdaemon determines resource adjustments to be made based on resourcestates, the processor may determine a state of onboard resources of themobile communication device block 725. The state of onboard resourcesmay reflect the current condition, operating state or status of one ormore onboard resources of the mobile communication device. The state mayrepresent a level of current use, current or future limits on use,available capacity, total capacity, availability and any other factorsrelating to the condition of onboard resource. This determination may bemay by the processor executing the call extender daemon issuing a queryto one or more resources, or accessing a database that records thecurrent state.

This determination of the resource or resources that is/are in useand/or available on the mobile communication device may be used by theprocessor executing the call extender daemon to automatically determinethe resources that are available for use and/or a current level of theuse of such resources. This autonomous process may minimize the amountof handshaking between a network and the mobile communication device.Also the processor executing the call extender daemon may perform theresource analysis continuously or only in response to receipt of anactivation input (i.e., indicating a call of interest is active).

In block 730 the processor executing the call extender daemon maydetermine a historical usage pattern of one or more of the onboardresources. Such a determination may be based on the state informationdetermined in block 725. The analysis for determining a resourceadjustment may be based on user history and/or heuristic analysis. Suchhistorical usage patterns may include information about what onboardresources are regularly used or checked by the user. In circumstanceswhere onboard hardware or services are going to be turned off,consideration should be given as to whether the user is using suchservices. For example an e-mail client may ping a server every 15minutes, which can be used as a history of client behavior. Thus, if theclient is checking for e-mail more often, then the algorithm may notwant to alter e-mail pinging.

Similarly, if a prior resource adjustment dims the screen of the mobilecommunication device, but the user immediately changes settings back totheir original brightness, such a user reaction may be notable. In sucha circumstance, adjusting screen brightness may be avoided if and whenfurther resource adjustments need to be made. Further, if a Bluetoothconnection active on the mobile communication device has not recentlybeen used in such a resource is a prime target to be turned off by thecall extender algorithm. In this way, historical usage patterns may beused as part of the determination as to whether a particular resourceoutput should be adjusted.

In block 735 the processor executing the call extender daemon maydetermine a resource adjustment to be made based on the state of onboardresources determined in block 725, which may involve a resourceanalysis. Depending on the circumstances only one resource may needadjustment or multiple resources may need adjusting. The determinedresource adjustment may include a first resource adjustment to oneonboard resource and a second different resource adjustment to anotheronboard resource. Also, one resource may need more than one type ofadjustment. For example, a first resource adjustment may involve turninga particular transceiver on, while a second resource adjustment mayinvolve changing the frequency with which that transceiver searches foror emits a signal.

A resource analysis may involve determining whether a screen or camerais on; some type of polling usage of the network is active; anddetermining the current charge state of the battery. A resource analysismay determine that a device is plugged into a power source, thusproviding virtually infinite power, in order to enhance tracking of thedevice. Alternatively, if a current onboard power reserve (i.e. theonboard battery power level) is extremely low. Such a critically lowbattery circumstance may warrant not activating additional trackingresources, in order to ensure the onboard power reserve is quicklyreplenished. If the phone is plugged in, for tracking purposes itstraceability can be improved by increasing the frequency of locationfixes. A further resource analysis relating to the frequency of locationfixes is described below with regard to FIG. 11 and FIG. 12.

The resource analysis may also take into account a determined mostcritical factor that lead to a call being dropped. In this way, if themobile communication device is not moving or has not been moving forsome time and the communication connection is strong, then a call dropfrom conductivity may not be assessed as a critical factor.Alternatively, where conductivity is questionable and the device isplugged-in, then redundant call connections may be appropriate.

The resource analysis may also pick up on cues from the user of themobile communication device, either current or historical. These cuesmay come from actions taken by the user, such as reverting to a pre-callextender configuration. Alternatively the cues may be verbal cues fromthe user commenting about configuration changes they may have detected.Such verbal cues may require speech recognition algorithms to beimplemented. For example, expressions such as “screen” and “dimmer” inclose proximity to one another may reflect the possibility of userdetection of the call extender daemon if the screen was dimmed as partof the resource adjustments. Alternatively, active commands may betransmitted from the eavesdropping server in response to the verbal cuesdetected from the context of the conversation that is taking place aspart of the call of interest. The eavesdropping server may have accessto more advanced speech recognition software or even input from humanagents actively listening to a call. In this way the eavesdroppingserver may transmit correction/adjusted instructions for alternativeresource allocation.

If the user is on a video call, which requires a lot of power, theprocessor executing the call extender daemon may determine in block 735that a video resource parameter, such as the frames per second of thevideo, may be altered in order to conserve power. Thus, instead of a 30frames per second refresh rate that can perhaps be reduced to 10 or 15frames per second. The user may attribute this adjustment to networkproblems, rather than a foreign application running on their device,which is thus helpful to avoid detection. Alternatively, a differentcodec may be employed on the mobile communication device for powerconservation.

In block 740 the processor executing the call extender daemon mayinitiate the determined resource adjustment determined in block 735. Theadjustment of the operating state of multiple resources may occursimultaneously, in consecutive series or some other structured order.The processor executing the call extender daemon may determine whetherfurther adjustments may be made by determining whether the call extenderdaemon should continue in determination block 745. If the processorexecuting the call extender daemon determines that the call extenderdaemon should continue or further adjustments are appropriate (i.e.,determination block 745=“Yes”), the processor may return to determininga state of device resources in block 725. If the processor executing thecall extender daemon determines that the call extender daemon should notcontinue (i.e., determination block 745=“No”), the processor may end thecall extender daemon in block 750.

The resource adjustment determined in block 735 may be any of a varietyof resource adjustments that may affect the likelihood and/or manner ofmaintaining a call active. Resource operating states may adjusted, suchas turned off or reduced in power, to reduce battery drain and thusreduce the chance of dropping the call by expending the battery.Alternatively, additional resources may be activated in order toincrease the likelihood of maintaining a call. For example, if themobile communication device is being charged and thus not at risk ofdraining the battery, the resource adjustments may include activatingadditional transceiver resources or increasing a frequency of locationfixes to help maintain a call.

Additionally, the processor executing the call extender daemon may useintelligence algorithms to respond to user reactions to resourceadjustments in order to reduce the chance of detection. For example, ifa user changes a resource allocation back to a pre-call extender triggerlevel, such as turning the screen brightness up after it has dimmed, theprocessor executing the call extender daemon not adjust the screenbrightness again. Thus, the processor executing the call extender daemonmay monitor user behavior/reaction in response to resource adjustmentand respond to the user reactions in order to avoid detection. Such usermonitoring may access historical uses or current uses of resources.

Redundant data streams may be set up in order to help preserve thecontinuity of a call of interest. For example, a circuit-switched callmay have a redundant call connection simultaneously set up on Wi-Fi ifavailable by the processor executing the call extender daemon. In thisway if the circuit-switched call is dropped such as because of a fade,the Wi-Fi connection can resume the call seamlessly. This may includeturning Wi-Fi on in a “ghost mode” which does not show the Wi-Fi icon tothe user (i.e., icon suppression). Potentially, a network infrastructurecan push Wi-Fi pass keys to the mobile communication device so that itmay have access to Wi-Fi networks it would not otherwise. For example,the eavesdropping server may have Wi-Fi access codes such as for aparticular hotel from which the call originates that may be pushed tothe mobile communication device to allow access to the hotel's Wi-Finetwork.

Additionally, the processor executing the call extender daemon mayactively conceal from the user the fact that adjustments of theoperating state of one or more onboard resources has been made. Forexample, although a Wi-Fi transceiver may have been turned on or off aspart of the resorts adjustment, the Wi-Fi icon normally displayed on auser interface may remain unchanged in order to conceal the resourceadjustment from the user.

Once an adjustment of resources is performed, a determination as towhether to continue the call extender daemon may be made indetermination block 745. If further resource adjustments may beperformed or need to be performed (i.e., determination block 745=Yes),then the process may return to block 725 to once again determine a stateof resources before determining further resource adjustments. Otherwise,if a determination is made that the call extender daemon should notcontinue (i.e., determination block 745=No) the call extender daemon mayend at 750.

FIG. 8 is a process flow diagram illustrating an embodiment method 800of dynamically adjusting mobile communication device resources formaintaining calls during a lawful intercept. The method 800 relates toprocess activities from a server perspective, such as from the home orlocal dispatcher server. In block 810 the server may transmit a call/MCDidentifier 810 to a regional location server or intermediate server inorder to receive an indication of the IP route of a call of interest,and particularly an endpoint address of a target mobile communicationdevice. In block 820 the server may receive a response including anaddress of the call or mobile communication device identified in block810. The call/MCD address may be an IP address such as an SIP URL, whichcan be used for delivery of commands to a target mobile communicationdevice or call of interest.

Using the received address for delivering commands to the mobilecommunication device, the server may transmit a registration initiatorin block 830. This transmission may be through a cellular telephonenetwork and one or more intermediate servers in order to reach themobile communication device, but may take a different route from that ofthe transmission of the call/MCD identifier in block 810. In response tothe registration initiator transmission the server may receive aregistration update in block 840. The registration update may reflect anactive SIP URL, provide access codes or other information needed tocontrol a target mobile communication device. The server may use thisinformation to transmit a call extender (CE) input in block 850, such asan activation input in order to activate a call extender daemon on themobile communication device. If further input needs to be provided tothe mobile communication device (i.e., determination block 860=“Yes”),server may transmit another call extender input in block 850, such as aninput including resource adjustment instructions or codes. Otherwise, ifthe server determines that no further input need be provided to themobile communication device (i.e., determination block 860=“No”) theserver may end the process may end at 870.

FIG. 9 is a process flow diagram illustrating an embodiment method 900of dynamically adjusting mobile communication device resources formaintaining calls during a lawful intercept. The method 900 relates toprocess activities from a server perspective similar to method 800, butfurther includes device resource state analysis performed by the remoteserver. In block 910 the server may transmit an activation input to themobile communication device as described above. The activation inputtransmitted in block 910 may be configured to request resourceinformation from the mobile communication device. In block 920 aresource status indication may be received by the server. In block 930the server may use the received resource status information to determinea resource adjustment for the mobile communication device in order toincrease the likelihood that a current call will be maintained. Theresource adjustment determined by the server in block 930 may be useadditional resources available to analyze the device resource stateinformation, including historical usage information about usage by theuser. The server may send to the mobile communication device thedetermined resource adjustment for one or more resources of the mobilecommunication device as a resource adjustment input in block 940. Suchresource adjustments may identify the specific adjustments to be made toone or more onboard resources and may include additional details such asthe timing and sequence of such adjustments.

The server may determine whether to continue communicating with the callextender daemon in determination block 950. If the server determinesthat further resource adjustments need to be performed (i.e.,determination block 950=Yes), the server may receive further stateinformation regarding resources of the mobile communication device inblock 920 and repeat the operations of determining further resourceadjustments. If the server determines that further resource adjustmentsneed not be performed (i.e., determination block 950=No) the server maycease further transmission to the mobile communication device.

FIG. 10 is a process flow diagram illustrating an embodiment method 1000of dynamically adjusting mobile communication device resources formaintaining calls during a lawful intercept. The method 1000 relates toprocess activities from the mobile communication device perspective, butwith remote analysis of resources being performed for identifyingresource adjustments. As described above, the mobile communicationdevice includes a processor configured with processor-executableinstructions to execute a call extender daemon adapted to receive andexecute protocols designed to increase the likelihood of maintaining anactive call on the mobile communication device. In block 1010 a callextender input may be received from a server at the mobile communicationdevice. The call extender input may represent an activation input asdescribed above, or a different input such as one requesting stateinformation from the mobile communication device. It should be notedthat prior to the receipt of this call extender input the mobilecommunication device may have received and responded to registrationrequests to register the call extender daemon a described above.

In response to receiving the call extender input the processor executingthe call extender daemon may transmit one or more resource statusindications to a requesting server or some other destination asappropriate in block 1020. The processor executing the call extenderdaemon may receive a resource adjustment input in block 1030. Theprocessor executing the call extender daemon may use the resourceadjustment input to adjust the operating state of one or more onboardresources of the mobile communication device in block 1040. The remoteresource analyses included in method 1000 may be used as an add-on to anautonomous or semi-autonomous call extender call extender daemon. Inthis way, the mobile communication device may initially activate somepreliminary automatic resource adjustments, and then await receipt offurther resource adjustment instructions from the remote server in block1030. As a further alternative, the mobile communication device mayperform its own resource analysis and corresponding adjustments, butalso accept a verification of those adjustments or supplementaladjustment instructions from a remote server.

When an adjustment of resources is performed, the processor executingthe call extender daemon may determine whether to continue the callextender daemon in determination block 1060. If the processor executingthe call extender daemon determines that further resource adjustmentsmay be performed or need to be performed (i.e., determination block1060=“Yes”), the processor may again transmit a current state ofresources in block 1020. f the processor executing the call extenderdaemon determines that the call extender daemon should not continue(i.e., determination block 1050=“No”), the processor may end the callextender daemon in block 1060.

There may be a number of different onboard resources R_(A), R_(B) . . .R_(N) of the mobile communication device available for adjustment,include hardware and software components. The battery of a mobilecommunication device is a resource critical to the continuing operationof the device. Although the battery may not be adjusted, other resourcesmay be adjusted to prevent that battery from being unnecessarily drainedduring a call subject to a lawful intercept. For example, the displayscreen on a mobile communication device generally consumes a significantamount of power, so dimming the display screen can conserve energystored in the battery for use in maintaining a call. However, dimmingthe screen on a mobile communication device may be noticed by a user andthus may be avoided under certain circumstances as a resource adjustmentoption. Other resources that can be adjusted or deactivated to conservebattery power include radios of the mobile communication device, such asa cellular transceiver (e.g., when the call is handled as avoice-over-IP call using WiFi), a global positioning system (GPS)receiver, a WiFi transceiver, a Bluetooth® receiver, a near-fieldcommunication (NFC) transceiver, and other transceivers.

Another resource adjustment that may be made involves changing the wayposition fixes are obtained and/or reducing the frequency at which themobile communication device determines and reports its position to thenetwork. Government agencies require that voice communication servicescomply with lawful tracking by mobile communication devices providingregular location fix information. Such location fix informationgenerally requires latitude/longitude information determined using GPSservices. However, obtaining a location fix too often causes excessivebattery drain and obtaining a location fix sporadically may result in astale or obsolete location fix. Also, there may be extraneouscircumstances that cause location fix attempts to fail (e.g., platformissues, unable to determine location, temporary fading, signal blockagesuch as in a tunnel, temporary network outages, etc.), requiringadditional fix attempts. Thus, in accordance with an embodiment aresource analysis may consider additional gathered information from themobile communication device for determining one particular resourceadjustment such as the frequency of location fixes. The analysis mayconsider multiple factors in order to interpolate or extrapolate anexpected location and movement of a mobile communication device. Whenthe location of the mobile communication device may be predicted with alevel of certainly through a low-cost analysis, it may reduce the needto use GPS to obtain a location fix.

FIG. 11 is a process flow diagram illustrating various elements ofinformation that may be gathered to compile position-related informationthat may be used to determine the location of a mobile communicationdevice. The gathered position-related information may be used as part ofan analysis to determine whether the resource operating state requiredto attempt a location fix may be avoided. The gathered position-relatedinformation may be obtained from onboard information already on themobile communication device, but perhaps not traditionally used tolocate that device. FIG. 11 includes several examples ofposition-related information gathering sources including a sensor 1110,map/navigational program 1115, historical data 1120 regarding movementof the device, a calendar program 1125 or even user interface (UI) 1130.Also, additional position-related information gathering sources may beconsidered and/or used, such as an information supplied by the cellularnetwork (e.g., current cell ID), current time, traffic inputs, andmessaging inputs. Sensors 1110 of various sorts may provide usefulposition-related information, such as whether the mobile communicationdevice is moving or stationary. A map/navigation program 1115 may be inthe process of giving a user directions to a destination, thus beingable to predict the path that the mobile communication device willtravel. Historical data 1120 regarding movement of a user's mobilecommunication device, particularly considering the time of day (i.e., aclock function) and the day of the week (i.e., a calendar program 1125),may be helpful. For example, a user may take the same route to and/orfrom work or a health club every day. Such routine information may beused to predict a travel route with a certain degree of confidence.Also, a user's calendar program 1125 may contain appointment informationthat can be used to determine where the user is likely heading if thetime for that appointment is approaching Additionally, the user maysimply enter destination or location information into a user interface(UI) 1130, perhaps being prompted by the call extender daemon made tolook like a common function of the mobile communication device. One ormore of such information gathering sources may provide movement and/orlikelihood position indications from the information they have stored orfrom which they have access.

In block 1140 the processor executing the call extender daemon mayreceive the movement likelihood indications from any available onboardsources, may use the information to determine a movement likelihood ofthe mobile communication device in block 1150. The movement likelihoodindications may reflect the mobile communication device is more likelythan not (e.g., 51% or greater chance) to move before an end of acurrent interval between location fixes. Alternatively, a higher orlower degree of accuracy regarding the likelihood of movement may beused. Also, the processor executing the call extender daemon maydetermine a reliability factor of the gathered position-relatedinformation. Thus, the processor executing the call extender daemon mayuse the gathered position-related information to determine whether, whenor how often to obtain new location fixes in response to a reliabilityfactor exceeding a reliability threshold. The intervals between locationfixes, including a current interval, may be defined by a predefinedfrequency for obtaining location fixes. Further, the reliability factormay be enhanced by a dynamic tolerance. The dynamic tolerance may bebased on an importance that the current call of interest be maintainedby the mobile communication device balanced against a precisionrequirement of the new location fix.

If the processor executing the call extender daemon determines that themobile communication device is expected to move (i.e., determinationblock 1155=“Yes”), the processor may immediately obtain a new locationfix or obtain a location fix in the normal course of time in block 1160.In this way, a new location fix may be obtained during a currentinterval between consecutive scheduled location fix requests. That newlocation fix may be obtained in response to determining the mobilecomputing device is expected to move based on the movement likelihoodindication(s). Otherwise, if the processor executing the call extenderdaemon determines that the mobile communication device is not expectedto move (i.e., determination block 1155=“No”), the processor may delaythe process of obtaining a new location fix in block 1170. The delay maybe for another interval or some other length of time determined from thegathered information. Regardless of whether the location fix was delayedin block 1170 or obtained in block 1160, the processor executing thecall extender daemon may determine whether further analysis is needed indetermination block 1180. If the processor executing the call extenderdaemon determines that no further analysis is needed (i.e.,determination block 1180=“No”), the processor may terminate the callextender daemon in block 1190. If the processor executing the callextender daemon determines that further analysis is needed (i.e.,determination block 1180=“Yes”), the processor may receive additionalmovement likelihood indications in block 1140 before again determining amovement likelihood in block 1150.

FIG. 12 is a process flow diagram illustrating how a radio resource maybe adjusted for maintaining a call of interest during a lawfulintercept. Generally, a mobile communication device will obtain apredetermined number (n) of location fixes at a regular frequency. Thatfrequency may be measured as a number of times (x) a location fix isattempted over a set period of time, such as once a minute. In order toconserve power in a mobile communication device, the frequency forobtaining fixes may be reduced in circumstances where it is appropriate,such as when other location information is available so that whengathered information indicates a location fix may not be required, suchas when the mobile communication device is stationary. Thus, a measurevelocity of the mobile communication device may be useful for varyingthe frequency of location fixes.

A mobile communication device will generally have a default frequencyvalue for obtaining location fixes. Before an adjustment in fix takingfrequency is implemented, the mobile communication device may be takingposition fixes at the default frequency in block 1210. In block 1212,the processor executing the call extender daemon may set the frequency xat one and a current velocity determination may be made in block 1214.The current velocity reflects a change in at least one of a directionand a speed of the mobile computing device. The velocity determinationmay be made from measurements registered by the mobile communicationdevice, such as from the gathered position-related information. If theprocessor executing the call extender daemon determines that a speed ofthe mobile communication device is less than 3 km/hr, for example,(i.e., determination block 1220=“Yes”), the processor may presume thatthe mobile communication device is either stationary or not moving veryfast. Thus, the processor executing the call extender daemon may apply atelescoping function to change the location fix frequency in block 1222.In particular, the processor may change the frequency x by the functionx=x/2*(x+1). An upper limit on the location fix frequency (i.e., Limx=10) may be included in the telescoping function in block 1222 toensure the frequency of location fixes remains within an appropriatelimit. In block 1224, the processor executing the call extender daemonor another processor or resource on the mobile communication device mayobtain the set number n of location fixes at the new frequencycalculated in block 1222. The processor may repeat the process ofdetermining its velocity in block 1214.

If the processor executing the call extender daemon determines that thespeed of the mobile communication device is not less than 3 km/hr (i.e.,determination block 1220=“No”), the processor may reset the frequency xmay to one in block 1226. In determination block 1230, the processorexecuting the call extender daemon may determine whether the currentlymeasured speed is in the range of 3-10 km/hr, and if so (i.e.,determination block 1230=“Yes”), the processor may apply a linearfunction suitable for such a moderate speed to change the location fixfrequency in block 1232. In particular, the processor may change thefrequency x by the function x=x+2. The processor may set an upper limiton the location fix frequency (i.e., Lim x=5) in block 1232 that may belower to ensure location fixes are obtained at a moderate frequencybecause the mobile communication device is not stationary. In block1234, the processor executing the call extender daemon or anotherresource may obtain the set number n of location fixes at the newfrequency calculated in block 1232. In block 1236 the processorexecuting the call extender daemon may make another velocitydetermination and repeat the moderate speed determination indetermination block 1230 to determine whether the speed remains withinthe range of 3-10 km/hr.

If the processor executing the call extender daemon determines that thespeed of the mobile communication device is not between the range of3-10 km/hr (i.e., determination block 1230=“No”), the processor mayreset the frequency x to one in block 1238. In determination block 1240,the processor executing the call extender daemon may determine whetherthe currently measured speed is greater than 10 km/hr, and if so (i.e.,determination block 1240=Yes), the processor may change the frequency xto a fixed frequency x=x+2 consistent with the mobile communicationdevice moving fast in block 1242. Such a fix frequency ensures arelatively high rate of location fixes may be obtained in block 1244.The processor executing the call extender daemon or another deviceresource may make another velocity determination in block 1246, andrepeat the high speed determination in determination block 1240 todetermine whether the speed remains greater than 10 km/hr. If theprocessor executing the call extender daemon determines that the speedof the mobile communication device is no longer greater than 10 km/hr(i.e., determination block 1240=“No”), the processor may reset the fixtaking frequency x to one in block 1212 and the operations describedabove.

The embodiments may be implemented in a variety of mobile communicationdevices. An example of a mobile communication device that may implementthe various embodiments is a Smartphone represented by mobilecommunication device 1300 illustrated in FIG. 13. The mobilecommunication device 1300 may include a processor 1302 coupled to atouchscreen controller 1304 and an internal memory 1306. The processor1302 may be one or more multicore ICs designated for general or specificprocessing tasks. The internal memory 1306 may be volatile ornon-volatile memory, and may also be secure and/or encrypted memory, orunsecure and/or unencrypted memory, or any combination thereof. Thetouchscreen controller 1304 and the processor 1302 may also be coupledto a touchscreen panel 1312, such as a resistive-sensing touchscreen,capacitive-sensing touchscreen, infrared sensing touchscreen, etc. Themobile communication device 1300 may have one or more radiotransceivers, including a cellular network wireless transceiver 1308 aswell as other types of transceivers (e.g., Peanut®, Bluetooth®, Zigbee®,Wi-Fi, RF radio, GPS) and antennae 1310, for sending and receiving,coupled to each other and/or to the processor 1302. The mobilecommunication device 1300 may include a cellular network wireless modem1316 coupled to the cellular network wireless transceiver 1308 and tothe processor that enables communications via a cellular telephonenetwork. The transceivers 1308 and antennae 1310 may be used with theabove-mentioned circuitry to implement the various wireless transmissionprotocol stacks and interfaces. The mobile communication device 1300 mayinclude a peripheral device connection interface 1318 coupled to theprocessor 1302. The peripheral device connection interface 1318 may besingularly configured to accept one type of connection, or multiplyconfigured to accept various types of physical and communicationconnections, common or proprietary, such as USB, FireWire, Thunderbolt,or PCIe. The peripheral device connection interface 1318 may also becoupled to a similarly configured peripheral device connection port (notshown). The mobile communication device 1300 may also include speakers1314 for providing audio outputs, a camera 1324 for receiving videoinputs and one or more other sensors 1326 for supplemental input, like aproximity sensor. The mobile communication device 1300 may also includea housing 1320, constructed of a plastic, metal, or a combination ofmaterials, for containing all or some of the components discussedherein. The mobile communication device 1300 may include a power source1322 coupled to the processor 1302, such as a disposable or rechargeablebattery. The rechargeable battery may also be coupled to the peripheraldevice connection port to receive a charging current from a sourceexternal to the mobile communication device 1300.

The various embodiments may be implemented on any of a variety ofcommercially available server devices, such as the server 1400illustrated in FIG. 14. Such a server 1400 typically includes aprocessor 1401 coupled to volatile memory 1402 and a large capacitynonvolatile memory, such as a disk drive 1403. The server may beconfigured with server-executable instructions to perform operations ofthe embodiment methods described above, and such server-executableinstructions may be stored on the disk drive 1403 and executed by theprocessor 1401. The server 1400 may also include a floppy disc drive,compact disc (CD) or DVD disc drive 1406 coupled to the processor 1401.The server 1400 may also include network access ports 1404 coupled tothe processor 1401 for establishing data connections with a network1405, such as a local area network coupled to other broadcast systemcomputers and servers. The processors 1301, 1401 may be any programmablemicroprocessor, microcomputer or multiple processor chip or chips thatcan be configured by instructions (applications or software) to performa variety of functions, including the functions of the variousembodiments described above. In some devices, multiple processors 1301,1401 may be provided, such as one processor dedicated to mobilecommunication functions and one processor dedicated to running otherapplications. Typically, software applications may be stored in theinternal memory 1302, 1402, and 1403 before they are accessed and loadedinto the processor 1301, 1401.

The processor 1301, 1401 may include internal memory sufficient to storethe application instructions. In many devices the internal memory may bea volatile or nonvolatile memory, such as flash memory, or a mixture ofboth. For the purposes of this description, a general reference tomemory refers to memory accessible by the processor 1301, 1401 includinginternal memory or removable memory plugged into the device and memorywithin the processor 1301, 1401 itself.

The foregoing method descriptions and the process flow diagrams areprovided merely as illustrative examples and are not intended to requireor imply that the steps of the various embodiments must be performed inthe order presented. As will be appreciated by one of skill in the artthe order of steps in the foregoing embodiments may be performed in anyorder. Words such as “thereafter,” “then,” “next,” etc. are not intendedto limit the order of the steps; these words are simply used to guidethe reader through the description of the methods. Further, anyreference to claim elements in the singular, for example, using thearticles “a,” “an” or “the” is not to be construed as limiting theelement to the singular.

The various illustrative logical blocks, modules, circuits, andalgorithm steps described in connection with the embodiments disclosedherein may be implemented as electronic hardware, computer software, orcombinations of both. To clearly illustrate this interchangeability ofhardware and software, various illustrative components, blocks, modules,circuits, and steps have been described above generally in terms oftheir functionality. Whether such functionality is implemented ashardware or software depends upon the particular application and designconstraints imposed on the overall system. Skilled artisans mayimplement the described functionality in varying ways for eachparticular application, but such implementation decisions should not beinterpreted as causing a departure from the scope of the presentinvention.

The hardware used to implement the various illustrative logics, logicalblocks, modules, and circuits described in connection with theembodiments disclosed herein may be implemented or performed with ageneral purpose processor, a digital signal processor (DSP), anapplication specific integrated circuit (ASIC), a field programmablegate array (FPGA) or other programmable logic device, discrete gate ortransistor logic, discrete hardware components, or any combinationthereof designed to perform the functions described herein. Ageneral-purpose processor may be a microprocessor, but, in thealternative, the processor may be any conventional processor,controller, microcontroller, or state machine A processor may also beimplemented as a combination of computing devices, e.g., a combinationof a DSP and a microprocessor, a plurality of microprocessors, one ormore microprocessors in conjunction with a DSP core, or any other suchconfiguration. Alternatively, some steps or methods may be performed bycircuitry that is specific to a given function.

In one or more embodiments, the functions described may be implementedin hardware, software, firmware, or any combination thereof. Ifimplemented in software, the functions may be stored on as one or moreinstructions or code on a non-transitory computer-readable storagemedium. The operations of a method or algorithm disclosed herein may beembodied in a processor-executable software module that may reside or bestored on a non-transitory computer readable storage medium orprocessor-readable medium. Non-transitory computer-readable andprocessor-readable storage media may be any available media that may beaccessed by a computer or processor. By way of example, and notlimitation, such non-transitory computer-readable and processor-readablemedia may include RAM, ROM, EEPROM, CD-ROM or other optical diskstorage, magnetic disk storage or other magnetic storage devices, or anyother medium that may be used to store desired program code in the formof instructions or data structures and that may be accessed by acomputer. Disk and disc, as used herein, includes compact disc (CD),laser disc, optical disc, digital versatile disc (DVD), floppy disk, andblu-ray disc where disks usually reproduce data magnetically, whilediscs reproduce data optically with lasers. Combinations of the aboveshould also be included within the scope of non-transitorycomputer-readable and processor-readable media. Additionally, theoperations of a method or algorithm may reside as one or any combinationor set of codes and/or instructions on a non-transitoryprocessor-readable medium and/or computer-readable medium, which may beincorporated into a computer program product.

The preceding description of the disclosed embodiments is provided toenable any person skilled in the art to make or use the presentinvention. Various modifications to these embodiments will be readilyapparent to those skilled in the art, and the generic principles definedherein may be applied to other embodiments without departing from thescope of the invention. Thus, the present invention is not intended tobe limited to the embodiments shown herein but is to be accorded thewidest scope consistent with the principles and novel features disclosedherein.

What is claimed is:
 1. A method of dynamically adjusting a resource of amobile communication device for maintaining an active call, comprising:transmitting, from a remote server, an activation input to the mobilecommunication device, wherein the activation input is configured toactivate a call extender daemon on the mobile communication device thatis not subject to being deactivated by a user of the mobilecommunication device; receiving, at the remote server, a first resourcestatus indication message from the mobile communication device inresponse to transmitting the activation input to the mobilecommunication device, wherein the first resource status indicationmessage includes a state of an onboard resource of the mobilecommunication device; determining, in the remote server, a firstresource adjustment based on the state of the onboard resource of themobile communication device; and transmitting, from the remote server, aresource adjustment input to the mobile communication device, whereinthe resource adjustment input is configured to adjust an operating stateof the onboard resource of the mobile communication device by the callextender daemon based on the activation input to increase a likelihoodof maintaining the active call on the mobile communication device andwithout alerting the user of the mobile communication device.
 2. Themethod of claim 1, further comprising: determining, in the remoteserver, a historical usage pattern of the onboard resource of the mobilecommunication device, wherein determining the first resource adjustmentis also based on the historical usage pattern.
 3. The method of claim 1,wherein transmitting the activation input to the mobile communicationdevice comprises transmitting the activation input to the mobilecommunication device by way of at least one of an Internet protocolchannel, a unicast message, and an overhead power control channel. 4.The method of claim 1, further comprising: transmitting, by the remoteserver to the mobile communication device, a registration initiator; andreceiving in the remote server a register request from the mobilecommunication device in response to transmitting the registrationinitiator, wherein the register request provides the remote server withan end point address for delivery of commands to the call extenderdaemon on the mobile communication device.
 5. The method of claim 1,further comprising: transmitting by the remote server to an intermediateserver a call identifier associated with the active call of the mobilecommunication device; and receiving in the remote server at least one ofan indication of an IP route of the active call and an end point addressof the mobile communication device.
 6. The method of claim 1, furthercomprising: receiving in the remote server from the mobile communicationdevice a second resource status indication message indicating an updatedstate of the onboard resource of the mobile communication device.
 7. Themethod of claim 6, further comprising: determining, by the remoteserver, a second resource adjustment based on the updated state of theonboard resource indicated in the second resource status indicationmessage; and transmitting, by the remote server, the activation inputincluding the determined second resource adjustment to the mobilecommunication device.
 8. The method of claim 1, further comprising:receiving in the remote server position-related information foridentifying a location of the mobile communication device; anddetermining, by the remote server, whether the mobile communicationdevice will move from the location, wherein the resource adjustmentinput reflects the determination of whether the mobile communicationdevice will move from the location.
 9. A server, comprising: a networkinterface; and a processor coupled to the network interface andconfigured with processor-executable instructions to perform operationscomprising: transmitting an activation input to a mobile communicationdevice, wherein the activation input is configured to activate a callextender daemon on the mobile communication device that is not subjectto being deactivated by a user of the mobile communication device;receiving a first resource status indication message from the mobilecommunication device in response to transmitting the activation input tothe mobile communication device, wherein the first resource statusindication message includes a state of an onboard resource of the mobilecommunication device; determining a first resource adjustment based onthe state of the onboard resource of the mobile communication device;and transmitting a resource adjustment input to the mobile communicationdevice, wherein the resource adjustment input is configured to adjust anoperating state of the onboard resource of the mobile communicationdevice by the call extender daemon based on the activation input toincrease a likelihood of maintaining an active call on the mobilecommunication device and without alerting the user of the mobilecommunication device.
 10. The server of claim 9, wherein the processoris configured with processor-executable instructions to performoperations further comprising: determining a historical usage pattern ofthe onboard resource of the mobile communication device, whereindetermining the first resource adjustment is also based on thehistorical usage pattern.
 11. The server of claim 9, wherein theprocessor is configured with processor-executable instructions toperform operations such that transmitting the activation input to themobile communication device comprises transmitting the activation inputto the mobile communication device by way of at least one of an Internetprotocol channel, a unicast message, and an overhead power controlchannel.
 12. The server of claim 9, wherein the processor is configuredwith processor-executable instructions to perform operations furthercomprising: transmitting to the mobile communication device aregistration initiator; and receiving a register request from the mobilecommunication device in response to transmitting the registrationinitiator, wherein the register request provides the server with an endpoint address for delivery of commands to the call extender daemon onthe mobile communication device.
 13. The server of claim 9, wherein theprocessor is configured with processor-executable instructions toperform operations further comprising: transmitting to an intermediateserver a call identifier associated with the active call of the mobilecommunication device; and receiving at least one of an indication of anIP route of the active call and an end point address of the mobilecommunication device.
 14. The server of claim 9, wherein the processoris configured with processor-executable instructions to performoperations further comprising: receiving from the mobile communicationdevice a second resource status indication message indicating an updatedstate of the onboard resource of the mobile communication device. 15.The server of claim 14, wherein the processor is configured withprocessor-executable instructions to perform operations furthercomprising: determining a second resource adjustment based on theupdated state of the onboard resource indicated in the second resourcestatus indication message; and transmitting the activation inputincluding the determined second resource adjustment to the mobilecommunication device.
 16. The server of claim 9, wherein the processoris configured with processor-executable instructions to performoperations further comprising: receiving position-related informationfor identifying a location of the mobile communication device; anddetermining whether the mobile communication device will move from thelocation, wherein the resource adjustment input reflects thedetermination of whether the mobile communication device will move fromthe location.
 17. A non-transitory computer-readable medium havingstored thereon server-executable instructions configured to cause aserver to perform operations comprising: transmitting an activationinput to a mobile communication device, wherein the activation input isconfigured to activate a call extender daemon on the mobilecommunication device that is not subject to being deactivated by a userof the mobile communication device; receiving a first resource statusindication message from the mobile communication device in response totransmitting the activation input to the mobile communication device,wherein the first resource status indication message includes a state ofan onboard resource of the mobile communication device; determining afirst resource adjustment based on the state of the onboard resource ofthe mobile communication device; and transmitting a resource adjustmentinput to the mobile communication device, wherein the resourceadjustment input is configured to adjust an operating state of theonboard resource of the mobile communication device by the call extenderdaemon based on the activation input to increase a likelihood ofmaintaining an active call on the mobile communication device andwithout alerting the user of the mobile communication device.
 18. Thenon-transitory computer-readable medium of claim 17, wherein the storedserver-executable instructions are configured to cause the server toperform operations further comprising: determining a historical usagepattern of the onboard resource of the mobile communication device,wherein determining the first resource adjustment is also based on thehistorical usage pattern.
 19. The non-transitory computer-readablemedium of claim 17, wherein the stored server-executable instructionsare configured to cause the server to perform operations furthercomprising: transmitting to the mobile communication device aregistration initiator; and receiving a register request from the mobilecommunication device in response to transmitting the registrationinitiator, wherein the register request provides the server with an endpoint address for delivery of commands to the call extender daemon onthe mobile communication device.
 20. The non-transitorycomputer-readable medium of claim 17, wherein the storedserver-executable instructions are configured to cause the server toperform operations further comprising: transmitting to an intermediateserver a call identifier associated with the active call of the mobilecommunication device; and receiving at least one of an indication of anIP route of the active call and an end point address of the mobilecommunication device.